package com.springdoor.goods.service;

import java.util.List;

import com.springdoor.common.core.domain.entity.SprdGoodsAttrVal;

/**
 * 商品属性值Service接口
 *
 * @author llshs
 * @date 2024-05-08
 */
public interface ISprdGoodsAttrValService
{
    /**
     * 查询商品属性值
     *
     * @param valueId 商品属性值主键
     * @return 商品属性值
     */
    public SprdGoodsAttrVal selectSprdGoodsAttrValByValueId(Long valueId);

    /**
     * 查询商品属性值列表
     *
     * @param sprdGoodsAttrVal 商品属性值
     * @return 商品属性值集合
     */
    public List<SprdGoodsAttrVal> selectSprdGoodsAttrValList(SprdGoodsAttrVal sprdGoodsAttrVal);

    /**
     * 新增商品属性值
     *
     * @param sprdGoodsAttrVal 商品属性值
     * @return 结果
     */
    public int insertSprdGoodsAttrVal(SprdGoodsAttrVal sprdGoodsAttrVal);

    /**
     * 修改商品属性值
     *
     * @param sprdGoodsAttrVal 商品属性值
     * @return 结果
     */
    public int updateSprdGoodsAttrVal(SprdGoodsAttrVal sprdGoodsAttrVal);

    /**
     * 批量删除商品属性值
     *
     * @param valueIds 需要删除的商品属性值主键集合
     * @return 结果
     */
    public int deleteSprdGoodsAttrValByValueIds(Long[] valueIds);

    /**
     * 删除商品属性值信息
     *
     * @param valueId 商品属性值主键
     * @return 结果
     */
    public int deleteSprdGoodsAttrValByValueId(Long valueId);

    /**
     * 校验商品属性值是否唯一
     *
     * @param goodsAttrVal 商品属性值
     * @return 结果
     */
    public boolean checkGoodsAttrValKeyUnique(SprdGoodsAttrVal goodsAttrVal);
    public boolean checkGoodsAttrValLabelUnique(SprdGoodsAttrVal goodsAttrVal);

    /**
     * 查询最大顺序值
     *
     * @param attrId 商品属性ID
     * @return 结果+1
     */
    public Integer findMaxOrderNum(Long attrId);
}
